Modernly, computer systems are being put into place wherein the software and data on which the computer operates may be located at one or more disparate computer resource locations. In addition, the databases being accessed by the software may be located on a different computing resource and may be, for example, located on a corporate intranet so that the resources to implement and execute the software are distributed. To accomplish this distributed software execution, it is necessary to be able to track the locations of the various resources on the Internet, such as by the IP addresses, so that the software resources and the data from one or more databases can be retrieved as needed. For example, pieces of the software code may be located at one location while the data associated with the software code may be distributed across the Internet.
The problem with the distributed computing set forth above is that the computer network of most corporate users is behind a security device or system, such as a firewall, and/or subject to proxy servers and other security measures that prevent users from easily accessing databases outside of the firewall. The purpose of the firewall is to protect the computer network from hackers outside of the system trying to get into the computer network and to avoid a user behind the firewall from downloading a potentially dangerous piece of code from the Internet. In addition, if the software is written in Java, the applet downloaded to the client can only interact with the server from which it was downloaded which is a fundamental security feature of Java. Thus, trying to connect through the Internet to distant servers cannot be done using Java applets with most protocols. The exception is the common hypertext transfer protocol (HTTP). By way of background, the HTTP protocol is the protocol used for all Internet traffic and it has over 10,000 ports. By specification, each port is traditionally used for certain types of traffic. For example, Oracle® database connections traditionally use port 1521. The general unprotected port for web-site Internet traffic, by default, is port 80. In addition, secure HTTP protocol traffic (HTTPS) is typically communicated over port 433.
In approaching this problem, there are well known typical approaches such as those described in the Sun Microsystems, Inc. Java 2.0 Enterprise Edition (“J2EE”) specification. In particular, the application server would make the call to the database server and then the application server would obtain the results and create business objects on the application server itself. The objects would then be sent to the requesting client. In this mode of operation, the objects would be resident on the application server and would then be available for other clients to use if they so chose to do so. This has the benefit of not duplicating effort, because the application server would maintain the objects for all clients to use, and the client would transport the objects back as needed. While this may be efficient, it has certain disadvantages for a dynamic distributing computing environment, such as: (1) it requires that the applet downloaded to the client contain the classes necessary to create the intended objects; and (2) the server must install the same classes on itself for creating the business objects intended for the client. These disadvantages make the system much less dynamic, and create other problems. For example, different clients may create different objects from the same resultset that is returned from the database and the classes required to create the objects for all of the clients may not be available to the application server.
In more detail, the clients that need a database connection may not be able to connect to the server from behind secure corporate intranets. Since corporate intranets, in general, are secured with firewalls, proxies and other security measures, the clients will have to tunnel through them to gain access to the external resources. Furthermore, most firewalls do not allow direct Internet Protocol (IP) traffic between the Internet and the internal network they are protecting. Thus, most organizations behind firewalls have a proxy server running that allows people inside the organization to access the Web. For a distributed computing environment across the Internet, it is necessary to allow users to access multiple databases through these security measures. Thus, it is necessary to provide a system and method for accessing data from behind a corporate security system so that the distributed computing system can be efficiently operated and for permitting a user behind a firewall to execute a distributed computer application, and it is to this end that the present invention is directed.